ITD | B Communication and Multimedia Design (CMD) - voltijd - versie 1.0
2.1 Inleiding
In dit hoofdstuk gaan we in op de onderwerpen bias, fairness en kansengelijkheid. Het doel is beter te begrijpen of er studenten zijn met minder kans op succes en of dit disproportioneel is. Dit kan duiden op kansenongelijkheid.
De analyse van kansengelijkheid heeft de volgende stappen:
We lezen een bewerkte dataset in en prognosemodellen die we in een basis-analyse hebben gemaakt (zie hoofdstuk 3).
We maken een explainer om de modellen beter te begrijpen en te kunnen uitleggen.
Vervolgens berekenen we of er bias bestaat voor verschillende groepen studenten naar geslacht, aansluiting en vooropleiding. We analyseren daarvoor de verdeling van kansen en mate van fairness in het prognosemodel dat we hebben ontwikkeld.
We trekken er conclusies uit over de mate van bias binnen de opleiding voor retentie na 1 jaar.
2.2 Voorbereidingen
2.2.1 Laad de data
We laden de bewerkte data en het beste prognosemodel in voor:
Opleiding: ITD | B Communication and Multimedia Design (Synth) (CMD), voltijd, eerstejaars - Retentie na 1 jaar
Toon code
## Create a list of dfPersonaslDfPersona <-list()## Walk over the variableslDfPersona <-map(lSensitive_labels,~Get_dfPersona_Recursive(.x)) |>set_names(lSensitive_labels)dfPersona_per_group <-bind_rows(lDfPersona) ## Save this file as an Excel spreadsheetsOutputPath <-file.path("R/data", "dfPersona_per_group.xlsx")writexl::write_xlsx(dfPersona_per_group, sOutputPath)## Load the personasdfPersona_all <-Get_dfPersona_Recursive()
2.2.2 Maak een explainer
Om het model beter te begrijpen en te kunnen uitleggen, maken we met behulp van het DALEX package een explainer.
DALEX is onder andere ontwikkeld om uit te kunnen leggen welke verklarende variabelen van belang zijn en wat deze voor een effect hebben in een model. Een explainer is een model-onafhankelijke wrapper, die inzicht geeft in de voorspellingen van het model en de bijdrage van de variabelen aan de prognose. Een explainer maakt het verder mogelijk om modellen onderling te vergelijken en benchmarken.
Toon code
# Select the best modelsBest_model <- dfModel_results$model[dfModel_results$best ==TRUE]last_fit <- lLast_fits[[sBest_model]]fitted_model <- last_fit |>extract_fit_parsnip()# If the model is logistic regression, check that the coefficients of the model are numericalif(sBest_model =="Logistic Regression") { coefs <-tidy(fitted_model)$estimate# Check that the coefficients are numericalif (!is.numeric(coefs)) {stop("De geëxtraheerde coëfficiënten zijn niet numeriek.") }}
Toon code
# Extract the fitted modelfitted_model <- last_fit |>extract_fit_parsnip()# Extract the workflowworkflow <- last_fit |>extract_workflow()# Create an explainerexplain_lf <- DALEX::explain(model = workflow,data = dfOpleiding_inschrijvingen |>select(-Retentie),y = dfOpleiding_inschrijvingen$Retentie,colorize =TRUE,verbose =TRUE,label = sBest_model)
Preparation of a new explainer is initiated
-> model label : Random Forest
-> data : 1613 rows 26 cols
-> target variable : 1613 values
-> predict function : yhat.workflow will be used ( [33m default [39m )
-> predicted values : No value for predict function target column. ( [33m default [39m )
-> model_info : package tidymodels , ver. 1.2.0 , task classification ( [33m default [39m )
-> predicted values : numerical, min = 0.1759112 , mean = 0.6193215 , max = 0.9273344
-> residual function : difference between y and yhat ( [33m default [39m )
-> residuals : numerical, min = -0.841733 , mean = 0.001881272 , max = 0.7484622
[32m A new explainer has been created! [39m
Toon code
if(is.null(explain_lf$y_hat) ||is.null(explain_lf$residuals)) { cli::cli_alert_danger(glue::glue("The explainer does not contain the correct results. ","Check the installation of model packages: {glue::glue_collapse(explain_lf$model_info$package, sep = ', ')}" ))stop("Solve this problem first")}
2.3 Analyse van kansengelijkheid
We onderzoeken kansengelijkheid door bias in de data te onderzoeken. Dit wordt ook wel een fairness analyse genoemd. Bias voor verschillende groepen studenten kan een teken zijn van kansenongelijkheid.
Het leidende werk voor fairness analyses is Fairness and Machine Learning: Limitations and Opportunities(Barocas et al., 2023). De methode die we in deze analyse hanteren hierop gebaseerd. We maken gebruik van de DALEX explainer en onderzoeken de invloed van de variabelen op de kans op retentie voor verschillende groepen studenten naar geslacht, aansluiting en vooropleiding.
De volgende definities zijn van belang:
Bevoorrechte groep: Een groep die als referentiegroep wordt beschouwd en mogelijk bevoordeeld wordt. Dit is in deze analyse altijd de meerderheidsgroep (bijv. vrouwen). Welke dit is per opleiding kan verschillen.
Beschermde groep: Een groep waarvan wordt verwacht dat deze mogelijk benadeeld wordt (bijv. mannen). Dit zijn in deze analyse, afhankelijke van de variabele, altijd een of meer minderheidsgroepen.
2.3.1 Ratio’s om kansengelijkheid te beoordelen
Voor elke groep onderzoeken we 5 ratio’s, ook wel maatstaven of metrieken genoemd. Deze ratio’s zijn afgeleid van verhoudingen in de confusion matrix; ze geven inzicht in de mate van bias en kansengelijkheid vanuit verschillende perspectieven van een prognosemodel.
In welke mate voorspelt het model zowel de positieve als negatieve uitkomsten goed?
Deze maatstaf wordt gebruikt om te beoordelen of een model even accuraat is voor verschillende subgroepen binnen de dataset. Het vergelijkt de nauwkeurigheid van het model voor een beschermde groep (een minderheidsgroep) met de nauwkeurigheid voor een bevoorrechte groep (de meerderheidsgroep). Deze ratio wordt berekend als de verhouding tussen de nauwkeurigheid voor de beschermde groep en de nauwkeurigheid voor de bevoorrechte groep.
Formule
\text{ACC} = \frac{TP + TN}{TP + FP + TN + FN}
Definities
Nauwkeurigheid (Accuracy): Het percentage correcte voorspellingen van het model. Dit wordt berekend als het aantal juiste voorspellingen gedeeld door het totale aantal voorspellingen.
Interpretatie
Ratio = 1: Het model is even accuraat voor beide groepen.
Ratio < 1: Het model is minder accuraat voor de beschermde groep dan voor de bevoorrechte groep, wat wijst op mogelijke bias tegen de beschermde groep.
Ratio > 1: Het model is meer accuraat voor de beschermde groep dan voor de bevoorrechte groep, wat ook op een vorm van bias kan wijzen, maar in het voordeel van de beschermde groep.
Ter illustratie
Stel dat we retentie voor havisten (bevoorrecht) en mbo-ers (beschermd) voorspellen en de nauwkeurigheid van het model voor havisten 80% is en voor mbo-ers 70%. De Accuracy Equality Ratio is dan 0,875 (70% / 80%). Dit betekent dat het model minder accuraat is voor de beschermde groep (mbo-ers) dan voor de bevoorrechte groep (havisten).
2. Equal Opportunity Ratio
In welke mate zijn de terecht positieve voorspellingen gelijk?
Deze maatstaf beoordeelt de gelijkheid van kansen die een model biedt aan verschillende subgroepen in termen van de ‘True Positive Rate’ (TPR). Het vergelijkt de kans dat een model correct een positieve uitkomst voorspelt voor een beschermde groep versus een bevoorrechte groep.
De True Positive Rate (TPR) is een andere term voor de sensitiviteit (ook wel recall) genoemd. De Equal Opportunity Ratio wordt berekend als het aantal true positives gedeeld door het totaal aantal werkelijke positives.
Formule
\text{TPR} = \frac{TP}{TP + FN}
Definities
TP: True Positives (correcte voorspellingen van positieve uitkomsten)
FN: False Negatives (werkelijke positieve uitkomsten die foutief als negatief zijn voorspeld)
Interpretatie
Ratio = 1: Het model biedt gelijke kansen aan beide groepen in termen van het correct voorspellen van positieve uitkomsten.
Ratio < 1: Het model biedt minder kansen aan de beschermde groep in vergelijking met de bevoorrechte groep, wat wijst op mogelijke bias tegen de beschermde groep.
Ratio > 1: Het model biedt meer kansen aan de beschermde groep in vergelijking met de bevoorrechte groep, wat ook op een vorm van bias kan wijzen, maar in het voordeel van de beschermde groep.
Ter illustratie
Stel dat we retentie voor havisten (bevoorrecht) en mbo-ers (beschermd) voorspellen en de True Positive Rate voor havisten 70% is en voor mbo-ers 60%. De Equal Opportunity Ratio is dan 0,857 (60% / 70%). Dit betekent dat het model minder kans biedt aan de beschermde groep (mbo-ers) om correct positieve uitkomsten te voorspellen dan aan de bevoorrechte groep (havisten).
3. Predictive Equality Ratio
In welke mate zijn de vals positieve voorspellingen gelijk?
Deze maatstaf beoordeelt de gelijkheid van het aantal False Positives (vals-positieven) tussen verschillende subgroepen. Het vergelijkt de False Positive Rate (FPR) voor een beschermde groep met de FPR voor een bevoorrechte groep.
De FPR is de verhouding van het aantal vals-positieve voorspellingen (False Positives, FP) ten opzichte van het totaal aantal werkelijke negatieve gevallen (True Negatives, TN en False Positives, FP). De Predictive Equality Ratio wordt berekend als de verhouding tussen de FPR voor de beschermde groep en de FPR voor de bevoorrechte groep.
Formule
\text{FPR} = \frac{FP}{FP + TN}
Definities
FP: False Positives (foutieve voorspellingen van positieve uitkomsten)
TN: True Negatives (correcte voorspellingen van negatieve uitkomsten)
Interpretatie
Ratio = 1: Het model heeft een gelijke kans om False Positives te maken voor beide groepen.
Ratio < 1: Het model heeft minder kans om False Positives te maken voor de beschermde groep dan voor de bevoorrechte groep, wat wijst op mogelijke bias ten nadele van de bevoorrechte groep.
Ratio > 1: Het model heeft meer kans om False Positives te maken voor de beschermde groep dan voor de bevoorrechte groep, wat wijst op mogelijke bias ten nadele van de beschermde groep.
Ter illustratie
Stel dat we retentie voor havisten (bevoorrecht) en mbo-ers (beschermd) voorspellen en de False Positive Rate voor havisten 20% is en voor mbo-ers 30%. De Predictive Equality Ratio is dan 1,5 (30% / 20%). Dit betekent dat het model meer kans heeft om vals-positieve voorspellingen te maken voor de beschermde groep (mbo-ers) dan voor de bevoorrechte groep (havisten).
4. Predictive Parity Ratio
In welke mate zijn de terecht positieve voorspellingen gelijk?
Deze maatstaf beoordeelt de gelijkheid van de nauwkeurigheid van de voorspelling tussen verschillende subgroepen door de positieve voorspellende waarde (Positive Predictive Value, PPV) van het model voor een beschermde groep te vergelijken met die voor een bevoorrechte groep. De PVV wordt ook wel de precisie genoemd en wordt berekend als het aantal true positives (TP) gedeeld door het totaal aantal voorspelde positives (TP en FP). Het is een maat voor de nauwkeurigheid van de positieve voorspellingen van het model.
Formule
\text{PPV} = \frac{TP}{TP + FP}
Definities
TP: True Positives (correcte voorspellingen van positieve uitkomsten)
FP: False Positives (foutieve voorspellingen van positieve uitkomsten)
Interpretatie
Ratio = 1: Het model heeft een gelijke nauwkeurigheid in voorspellingen voor beide groepen.
Ratio < 1: Het model is minder nauwkeurig in het voorspellen van positieve uitkomsten voor de beschermde groep dan voor de bevoorrechte groep, wat wijst op mogelijke bias tegen de beschermde groep.
Ratio > 1: Het model is nauwkeuriger in het voorspellen van positieve uitkomsten voor de beschermde groep dan voor de bevoorrechte groep, wat ook op een vorm van bias kan wijzen, maar in het voordeel van de beschermde groep.
Ter illustratie
Stel dat we retentie voor havisten (bevoorrecht) en mbo-ers (beschermd) voorspellen en de Positive Predictive Value voor havisten 80% is en voor mbo-ers 70%. De Predictive Parity Ratio is dan 0,875 (70% / 80%). Dit betekent dat het model minder nauwkeurig is in het voorspellen van positieve uitkomsten voor de beschermde groep (mbo-ers) dan voor de bevoorrechte groep (havisten).
5. Statistical Parity Ratio
In welke mate zijn de positieve voorspellingen gelijk?
Deze maatstaf beoordeelt de gelijkheid van de positieve voorspellingen (ongeacht of ze correct zijn of niet) tussen verschillende subgroepen. Het vergelijkt de kans dat een model een positieve uitkomst voorspelt voor een beschermde groep met de kans dat het een positieve uitkomst voorspelt voor een bevoorrechte groep. De Statistical Parity Ratio wordt berekend als de verhouding tussen de kans op een positieve voorspelling voor de beschermde groep en de kans op een positieve voorspelling voor de bevoorrechte groep.
Formule
\text{SPR} = \frac{TP + FP}{TP + FP + TN + FN}
Definities
Positieve Voorspelling: Een voorspelling waarin het model een positieve uitkomst voorspelt (bijv. aangenomen worden, krediet goedkeuring, etc.).
Interpretatie
Ratio = 1: Het model voorspelt even vaak positieve uitkomsten voor beide groepen.
Ratio < 1: Het model voorspelt minder vaak positieve uitkomsten voor de beschermde groep dan voor de bevoorrechte groep, wat wijst op mogelijke bias tegen de beschermde groep.
Ratio > 1: Het model voorspelt vaker positieve uitkomsten voor de beschermde groep dan voor de bevoorrechte groep, wat kan wijzen op bias ten nadele van de bevoorrechte groep.
Ter illustratie
Stel dat we retentie voor havisten (bevoorrecht) en mbo-ers (beschermd) voorspellen en de kans op een positieve voorspelling voor havisten 80% is en voor mbo-ers 70%. De Statistical Parity Ratio is dan 0,875 (70% / 80%). Dit betekent dat het model minder vaak positieve uitkomsten voorspelt voor de beschermde groep (havisten) dan voor de bevoorrechte groep (mbo-ers).
Nu we deze begrippen hebben gedefinieerd, kunnen we de bias en kansengelijkheid van het model voor verschillende groepen studenten analyseren. Hiervoor gebruiken we het fairmodels package van DALEX.
2.3.2 Aantallen en percentages per groep
Voor de variabelen Geslacht, Aansluiting en Vooropleiding is de verdeling binnen deze opleiding als volgt:
Tabel 2.1: Aantallen en percentages naar geslacht, aansluiting en vooropleiding in relatie tot retentie
Retentie na 1 jaar
Variabele
N
Totaal N = 1.6131
Ja N = 1.0021
Nee N = 6111
p-value2
Geslacht
1.613
<0,001***
M
915 (57%)
521 (52%)
394 (64%)
V
698 (43%)
481 (48%)
217 (36%)
Aansluiting
1.613
<0,001***
Direct
756 (47%)
455 (45%)
301 (49%)
Tussenjaar
176 (11%)
125 (12%)
51 (8,3%)
Switch intern
202 (13%)
148 (15%)
54 (8,8%)
Switch extern
445 (28%)
254 (25%)
191 (31%)
2e Studie
15 (0,9%)
6 (0,6%)
9 (1,5%)
Na CD
19 (1,2%)
14 (1,4%)
5 (0,8%)
Overig
0 (0%)
0 (0%)
0 (0%)
Onbekend
0 (0%)
0 (0%)
0 (0%)
Vooropleiding
1.613
0,014*
MBO
522 (32%)
330 (33%)
192 (31%)
HAVO
860 (53%)
548 (55%)
312 (51%)
VWO
58 (3,6%)
34 (3,4%)
24 (3,9%)
BD
92 (5,7%)
42 (4,2%)
50 (8,2%)
CD
30 (1,9%)
21 (2,1%)
9 (1,5%)
HO
51 (3,2%)
27 (2,7%)
24 (3,9%)
Overig
0 (0%)
0 (0%)
0 (0%)
Onbekend
0 (0%)
0 (0%)
0 (0%)
1n (%)
2*p<0.05; **p<0.01; ***p<0.001
2.3.3 Verdeling van kansen
Voordat we in meer detail kansengelijkheid gaan analyseren, onderzoeken we de verdeling van de kansen op retentie voor verschillende groepen studenten voor Geslacht, Aansluiting en Vooropleiding. De verdeling van deze kansen is uniek per opleiding.
Toelichting
De verdeling van de kansen is te zien door de boxplot en de violin plot.
De boxplot geeft de vier quartielen aan van de data: de box staat voor de middelste 50% van de data, met een streep die de mediaan aangeeft (de middelste waarde van de data). De lijnen (whiskers) geven de 1e 25% en laatste 25% van de data.
De boxplot wordt gecombineerd met de violin plot, waarbij de breedte van de violin de dichtheid van de data aangeeft. Het kan zijn dat het lijkt alsof er geen violin is; in dat geval is de verdeling van het aantal studenten zeer breed en de violin vorm daardoor heel smal.
Samen geven deze twee visualisaties een goed beeld van de verdeling van de voorspelde kansen van het model.
De blauwe gestippelde lijn geeft de 50% kans aan; alle waarden die boven deze lijn vallen hebben een kans van 50% of meer op retentie. Hiervan voorspelt het model dat zij zeker doorstuderen. Deze grenslijn kan door de verdeling van groepen heen lopen. Bedenk in zo’n situatie dat voor een deel van de studenten het model voorspelt dat zij juist wel doorstromen (50% of meer) of juist niet (minder dan 50%).
Toon code
# Make a fairness analysisfor(group inc(lSensitive_labels)) {# GroupKnit_Header(group, 4)# Determine the most common subgroup = Privileged sPrivileged <-Get_Privileged(dfOpleiding_inschrijvingen, group)# Create a fairness object fobject <-Get_objFairness(explain_lf, group, sPrivileged)# Create a table from the fairness analysis dfFairness_totaal <-Get_dfFairness_Total(fobject)# Create a plot of the fairness analysis density_plot <-suppressWarnings(Get_Density_Plot(fobject, group = group) ) # Save the plot sPlotname <-glue("density_plot_{tolower(group)}") sPlotPath <-Get_Plot_Outputpath(sPlotname, mode ="plot", bestmodel = sBest_model)suppressWarnings(Finalize_Plot(plot_name = density_plot,save_filepath = sPlotPath,height_pixels =250+ (50*length(unique(dfFairness_totaal$Categorie))) ))# Show the existing plot sPlot <-glue("![Verdeling en dichtheid van {tolower(lResearch_settings[['sSucces_label']])} naar {tolower(group)}]({sPlotPath}){{#fig-fairness-check-{tolower(group)}}}")Knit_Print_Rule(sPlot)}
2.3.3.1 Geslacht
Figuur 2.2: Verdeling en dichtheid van kans op retentie naar geslacht
2.3.3.2 Aansluiting
Figuur 2.3: Verdeling en dichtheid van kans op retentie naar aansluiting
2.3.3.3 Vooropleiding
Figuur 2.4: Verdeling en dichtheid van kans op retentie naar vooropleiding
2.3.4 Fairness checks
Nu we de verdeling van de kansen kennen, maken we een fairness analyse voor Geslacht, Aansluiting en Vooropleiding. Voor elke groep berekenen we de maatstaven die we eerder hebben behandeld.
We maken een plot van de fairness analyse, waarbij we per variabele één categorie nemen als de bevoorrechte groep; hiervoor hanteren we – zoals al aangegeven – per variabele de meest frequente groep. Het is waarschijnlijk dat in een opleiding de voorlichting, begeleiding en onderwijs het meest heeft afgestemd op deze groep.
Als binnen een variabele een groep een ratio heeft die naar links of naar rechts afwijkt, kan dit duiden op een verschil in kansengelijkheid. Let erop dat de bevoorrechte groep zelf hier niet in is opgenomen (!). Mochten alle overige groepen naar links of rechts afwijken, dan is er sprake van een bias naar de bevoorrechte groep.
Het wijkt af als de balken verder buiten het groene vlak komen en in het rode vlak; dit is gebaseerd op een marge, epsilon, van 0,8. Deze marge is gebaseerd op het 4/5 principe: er is sprake van een te groot verschil als de maat voor een beschermde groep 4/5 of meer afwijkt van de bevoorrechte groep. Een epsilon van 0,8 leidt tot marges van -0,2 (epsilon/1) en +0,25 (1/espilon). Als er twee ratio’s of meer buiten deze marges vallen, is er volgens dit criterium sprake van bias. Als een maatstaf naar links afwijkt is er sprake van bias naar de beschermde groep (ten nadele), als deze naar rechts afwijkt is er sprake van bias naar de bevoorrechte groep (ten voordele).
Alle afwijkingen samen worden opgeteld als absolute waarden en uitgedrukt in de maat ‘Totaal verlies’. Hoe hoger de waarde hiervan is, des te groter de verschillen zijn tussen groepen.
Nota Bene
Als de uitkomstmaat van een model negatief is (zoals uitval), dan moet de interpretatie precies andersom gemaakt worden. Dit geldt voor alle maatstaven van bias en fairness in dit hoofdstuk.
Om de robuustheid en betrouwbaarheid in de detectie van bias te waarborgen, moeten er minstens twee metrieke waarden buiten de epsilon-marges vallen voordat er sprake is van bias (Barocas et al., 2023).
Hiervoor is een aantal redenen:
1. Meerdere indicatoren: Het gebruik van meerdere maatstaven zorgt ervoor dat we de detectie van bias niet baseren op slechts een, mogelijk ruisgevoelige, indicator. Als slechts één metriek buiten de marges valt, kan dit toeval zijn of te wijten zijn aan andere niet-systematische fouten in de data. We spreken dan nog niet over bias. Meerdere metrieke afwijkingen geven een sterkere indicatie van een systematisch probleem.
2. Differentie van bias types: Bias kan zich op verschillende manieren manifesteren, bijvoorbeeld in termen van ongelijksoortige impact, ongelijke kansen in voorspellingen of ongelijke behandeling. Door meerdere maatstaven te evalueren, onderzoeken we een breder spectrum van potentiële bias en zien we geen aspecten over het hoofd.
3. Normatieve overwegingen: Vaak is er een normatieve basis voor het definiëren van wat eerlijk is. Het vergelijken van meerdere maatstaven kan helpen om genuanceerder en vollediger beeld te krijgen van hoe een model presteert ten opzichte van verschillende fairness criteria.
De keuze voor twee maatstaven als minimum baseren we op een combinatie van statistische overwegingen en praktische normen binnen het machine learning vakgebied om een goed evenwicht te vinden tussen sensitiviteit (het detecteren van daadwerkelijke bias) en specificiteit (het vermijden van vals positieven) (Barocas et al., 2023).
Toon code
# Make a fairness analysisfor(group inc(lSensitive_labels)) {# GroupKnit_Header(group, 4)# Determine the most common subgroup = Privileged sPrivileged <-Get_Privileged(dfOpleiding_inschrijvingen, group)# Create a fairness object fobject <-Get_objFairness(explain_lf, group, sPrivileged)# Create a table from the fairness analysis dfFairness_totaal <-Get_dfFairness_Total(fobject)# Check for biasPrint_Fairness_Object_LTA(fobject)# Create a plot of the fairness analysis fairness_plot <-suppressWarnings(Get_Fairness_Plot(fobject, group = group, privileged = sPrivileged) +theme(panel.border =element_rect(colour ="darkgrey",fill =NA,size =0.4 )) )# Save the plot sPlotname <-glue("fairness_plot_{tolower(group)}") sPlotPath <-Get_Plot_Outputpath(sPlotname, mode ="plot", bestmodel = sBest_model)suppressWarnings(Finalize_Plot(plot_name = fairness_plot,save_filepath = sPlotPath,height_pixels =250+ (50*length(unique(dfFairness_totaal$Categorie))) ))# Show the existing plot sPlot <-glue("{{#fig-fairness-check-{tolower(group)}}}")Knit_Print_Rule(sPlot)# Keep the fairness check data sFairness_outputpath <-Get_Model_Outputpath(mode ="fairness", group = group) dfFairness_check_data <-Get_dfFairness_Check_Data(fobject[["fairness_check_data"]], group = group)saveRDS(dfFairness_check_data, file = sFairness_outputpath)}
2.3.4.1 Geslacht
Prognosemodel (Random Forest) niet geslaagd: 3 van 5 maatstaven Totaal verlies : 1.84
Figuur 2.5: Fairness check naar geslacht
2.3.4.2 Aansluiting
Prognosemodel (Random Forest) niet geslaagd: 1 van 5 maatstaven Totaal verlies : 2.82
Figuur 2.6: Fairness check naar aansluiting
2.3.4.3 Vooropleiding
Prognosemodel (Random Forest) niet geslaagd: 3 van 5 maatstaven Totaal verlies : 3.16
Figuur 2.7: Fairness check naar vooropleiding
2.4 Conclusies
Toon code
lDfFairness <-list()# Walk over the variablesfor(i inc(lSensitive_labels)) { sFairness_outputpath <-Get_Model_Outputpath(mode ="fairness", group = i) lDfFairness[[i]] <-readRDS(sFairness_outputpath) |>mutate(FRN_Bias =case_when(FRN_Score <0.8~"Negatieve Bias", FRN_Score >1.25~"Positieve Bias",.default ="Geen Bias"))}# Create a table from the fairness analysisdfFairness_wide <-Get_dfFairness_Wide(lDfFairness)
De uitkomsten van de kansengelijkheidsanalyse is:
Toon code
# Now create a text per variable from the tablelConclusies <-list()for(i in lSensitive_labels) { lConclusies[[i]] <-Get_Fairness_Conclusies(dfFairness_wide, i)}# Dynamically generate the conclusions in textj <-1for (i in lSensitive_labels) {cat(glue("{j}. **{i}**: {lConclusies[[i]]} \n\n")) j <- j +1}
Geslacht: Er is sprake van bias in Retentie na 1 jaar op basis van geslacht. Er is een positieve bias voor vrouwen (V: N = 698, 43,3%).
Aansluiting: Er is sprake van bias in Retentie na 1 jaar op basis van aansluiting. Er is een negatieve bias voor studenten die twee of meer studies volgen (2e Studie: N = 15, 0,9%).
Vooropleiding: Er is sprake van bias in Retentie na 1 jaar op basis van vooropleiding. Er is een negatieve bias voor studenten met buitenlands diploma (BD: N = 92, 5,7%).
Toon code
# Create a flextableftFairness_table <-Get_ftFairness(flextable(dfFairness_wide |>select(-c(Groep_label, Text))))# Print the flextableftFairness_table
Tabel 2.2: Fairness conclusies per groep
Variabele
Groep
N
%
Bias
Geen Bias
Negatieve Bias
Positieve Bias
Geslacht
M
915
56,7
NTB
0
0
0
V
698
43,3
Ja
3
0
2
Aansluiting
Direct
756
46,9
NTB
0
0
0
Tussenjaar
176
10,9
Nee
5
0
0
Switch intern
202
12,5
Nee
5
0
0
Switch extern
445
27,6
Nee
5
0
0
2e Studie
15
0,9
Ja
3
2
0
Na CD
19
1,2
Nee
4
1
0
Vooropleiding
MBO
522
32,4
Nee
5
0
0
HAVO
860
53,3
NTB
0
0
0
VWO
58
3,6
Nee
5
0
0
BD
92
5,7
Ja
3
2
0
CD
30
1,9
Nee
4
1
0
HO
51
3,2
Nee
5
0
0
Toelichting:
Negatieve bias.
Positieve bias.
Bias, maar de aantallen studenten zijn te laag om conclusies over een negatieve of positieve bias aan te verbinden.
De bevoorrechte groep. Hiervan dient een eventuele bias nader bepaald te worden (NTB = Nader te bepalen). Dit is het geval als alle overige groepen binnen een variabelen een bias hebben.
Er zijn vijf aspecten op basis waarvan de mate van bias gescoord wordt; het aantal in de kolommen geeft aan op hoeveel aspecten het oordeel over bias is gebaseerd. Voor een oordeel moet er minimaal op twee aspecten sprake zijn van bias.
We hanteren een minimum van 15 studenten per categorie binnen een variabele om een oordeel te geven.
Verantwoording
Deze analyse maakt deel uit van het onderzoek naar kansengelijkheid van het lectoraat Learning Technology & Analytics van De Haagse Hogeschool: No Fairness without Awareness | Het rapport is door het lectoraat ontwikkeld in Quarto 1.6.39.
Barocas, S., Hardt, M., & Narayanan, A. (2023). Fairness and Machine Learning: Limitations and Opportunities. fairmlbook.org. http://www.fairmlbook.org